// SHLoadAssignCommand.h: interface for the SHLoadAssignCommand class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SHLOADASSIGNCOMMAND_H__D14D1630_A4DE_46CA_B5CF_9DDBD3A2F87D__INCLUDED_)
#define AFX_SHLOADASSIGNCOMMAND_H__D14D1630_A4DE_46CA_B5CF_9DDBD3A2F87D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "CommandObject.h"
#include "Register.h"
#include "ObjectGenerator.h"
#include "SupportHanger.h"

class SHLoadAssignInfo;

class SHLoadAssignCommand : public CommandObject  
{
	typedef RegisterTemplate<INT, SHLoadAssignInfo*> SHLoadAssignStratigyRegister;
	typedef ObjectGenerator<SHLoadAssignStratigyRegister> SHLoadAssignStratigyRegisterGenerator;
public:
	SHLoadAssignCommand(SupportHanger* pSH);
	virtual ~SHLoadAssignCommand();

public:
	virtual BOOL Execute();

public:
	static SHLoadAssignStratigyRegister& GetSHLoadAssignStratigyRegister();

private:
	SupportHanger* m_pSH;

private:
	static SHLoadAssignStratigyRegisterGenerator m_Generator;
};

#endif // !defined(AFX_SHLOADASSIGNCOMMAND_H__D14D1630_A4DE_46CA_B5CF_9DDBD3A2F87D__INCLUDED_)
